package sel.me.sharding.learning;

import com.alibaba.druid.pool.DruidPooledPreparedStatement;
import com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl;

import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.mysql.cj.jdbc.ClientPreparedStatement;
import io.shardingsphere.core.constant.ConnectionMode;
import io.shardingsphere.core.merger.MergedResult;
import io.shardingsphere.core.merger.dql.DQLMergeEngine;
import io.shardingsphere.core.merger.dql.groupby.aggregation.AccumulationAggregationUnit;
import io.shardingsphere.core.merger.dql.groupby.aggregation.AggregationUnit;
import io.shardingsphere.shardingjdbc.executor.PreparedStatementExecutor;
import io.shardingsphere.shardingjdbc.executor.SQLExecuteCallbackFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration;
import org.springframework.context.annotation.ImportResource;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

//@EnableFeignClients(basePackages = "com.case1337.casecenter.biz.consumer")
//@EnableEurekaClient
//@EnableScheduling
//@SpringCloudApplication
@EnableScheduling
@EnableAsync
@ImportResource({ "classpath*:spring/spring-*.xml" })
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class
    , ThymeleafAutoConfiguration.class})
public class ShardingLearningStartupApplication {

    public static void main(String[] args)  {
        SQLExecuteCallbackFactory sqlExecuteCallbackFactory;
        ListenableFuture listenableFuture;
        ConnectionMode connectionMode;
        MergedResult mergedResult;
        DruidPooledPreparedStatement druidPooledPreparedStatement;
        PreparedStatementProxyImpl preparedStatementProxyImpl;
        ClientPreparedStatement clientPreparedStatement;
        PreparedStatementExecutor preparedStatementExecutor;
        ListeningExecutorService listeningExecutorService;
        DQLMergeEngine dqlMergeEngine;
        AggregationUnit aggregationUnit;
        AccumulationAggregationUnit accumulationAggregationUnit;
        SpringApplication.run(ShardingLearningStartupApplication.class, args);
    }
}
